#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Filename: 02_linear_regression.py
# 普通的最小二乘线性回归：Ordinary least squares Linear Regression：
#       使得线尽量的穿过所有的数据点，即做到方差和偏差最小

import numpy as np
from sklearn.linear_model import LinearRegression

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 创建线性回归对象(Ordinary least squares Linear Regression：普通的最小二乘线性回归)
lin_reg = LinearRegression()

# 使用线性回归对象基于创建的X和真实值y开始训练模型, fit内部也是使用 `解析解` 的方式完成的
lin_reg.fit(X, y)

# lin_reg.intercept_：截距，w0
# lin_reg.coef_：w1,w2...   coefficient：系数
print(lin_reg.intercept_, lin_reg.coef_)

# 预测新数据
X_test = np.array([[0], [2]])
print(lin_reg.predict(X_test))
